﻿using System;
using System.Collections.Generic;
using System.Linq;
using Microsoft.VisualStudio.TestTools.UnitTesting;
using Triunfadores.BusinessEntities;
using Triunfadores.Repository;

namespace Triunfadores.Test
{
    [TestClass]
    public class SolicitudPrestamoTest
    {
        [TestMethod]
        public void ObtenerTodasLasSolicitudesDePrestamoTest()
        {
            SolicitudPrestamoRepository target = new SolicitudPrestamoRepository();
            IEnumerable<SolicitudPrestamo> actual;
            actual = target.ObtenerTodasLasSolicitudesPrestamo();
            Assert.IsTrue(actual.Count() >= 1);
        }

        [TestMethod]
        public void ObtenerSolicitudPrestamoPorIdTest()
        {
            SolicitudPrestamoRepository target = new SolicitudPrestamoRepository();
            var id = 1;
            SolicitudPrestamo actual;
            actual = target.ObtenerSolicitudPrestamoPorId(id);
            Assert.IsTrue(actual.Id == 1);
            //Assert.IsTrue(actual.Count >= 1);
            //Assert.IsNotNull(actual);
        }

        [TestMethod]
        public void AddSolicitudPrestamoTest()
        {
            SolicitudPrestamoRepository solicitudPrestamoRepository = new SolicitudPrestamoRepository();
            var ListEsperado = (IEnumerable<SolicitudPrestamo>)solicitudPrestamoRepository.ObtenerTodasLasSolicitudesPrestamo();
            SolicitudPrestamo solicitudPrestamo = new SolicitudPrestamo()
            {
                Cantidad = decimal.Parse("2000"),
                Comentario = "Prueba de Registro de solicitud de Prestamo",
                Estado = "No vista",
                FechSolicitud = DateTime.Parse("01/11/2015"),
                TasaInteres = decimal.Parse("0.2"),
                TipoPago = "Mensual",
                IdCliente = 6
            };
            solicitudPrestamoRepository.AddSolicitudPrestamo(solicitudPrestamo);
            var ListaCTUAL = (IEnumerable<SolicitudPrestamo>)solicitudPrestamoRepository.ObtenerTodasLasSolicitudesPrestamo();
            Assert.AreEqual(ListEsperado.Count() + 1, ListaCTUAL.Count(), "Error ");
        }

        [TestMethod]
        public void UpdateSolicitudPrestamoTest()
        {
            SolicitudPrestamoRepository target = new SolicitudPrestamoRepository();
            var ID = 8;
            var ESTADO = "Actulizada";

            SolicitudPrestamo solicitudPrestamo = new SolicitudPrestamo()
            {
                Id = ID,
                Estado = ESTADO,
                IdCliente=6

            };
            target.UpdateSolicitudPrestamo(solicitudPrestamo);
            var existe = target.ObtenerSolicitudPrestamoPorId(ID);
            Assert.IsTrue(existe.Estado == ESTADO);
        }
    }
}
